跳到主要内容

11 定时器输出实验

up的视频讲解

同样是 PWM,电机用占空比调节驱动,舵机用脉宽表达位置指令。

up视频里的实验代码: 👣定时器输出实验代码

1 ⚙️PWM控制电机实验​

1.1 实验连接​

按照图中连接把定时器输出接入驱动模块,电机接到 H 桥输出端;确认主控和驱动模块共地。

按照图中连接把定时器输出接入驱动模块,电机接到 H 桥输出端;确认主控和驱动模块共地。
按照图中连接把定时器输出接入驱动模块,电机接到 H 桥输出端;确认主控和驱动模块共地。

1.2 实验原理​

电机驱动模块先把 AIN1、AIN2 的逻辑状态送入控制电路,再由 H 桥改变电机两端的连接。

输入逻辑控制 H 桥,AO1、AO2 接到电机两端。
输入逻辑控制 H 桥,AO1、AO2 接到电机两端。
AIN1 / AIN2电机两端的作用
1 / 0一个方向驱动
0 / 1反方向驱动
0 / 0停止驱动、自由滑行
1 / 1制动

先固定其中一路,再让另一路周期性改变,就能通过 PWM 调整驱动占空比。电机的电气与机械过程把快速变化转化为相应的转速表现。

周期不变时,改变有效时间的比例,改变驱动的平均作用。
周期不变时,改变有效时间的比例,改变驱动的平均作用。

在向上计数的 PWM 模式 1 中,CNT 小于 CCR 时输出有效电平;模式 2 相反。有效电平究竟是高还是低,还由通道极性决定。

分别看比较关系、PWM 模式和通道极性,避免把它们混成一个选项。
分别看比较关系、PWM 模式和通道极性,避免把它们混成一个选项。

1.3 CubeMX配置​

CubeMX配置
CubeMX配置
CubeMX配置

1.4 实验代码​

全局​

main()​

while(1)里面​

HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_1);

__HAL_TIM_SetCompare(&htim2,TIM_CHANNEL_1,counter*10);

2 🤖定时器输出PWM控制舵机实验​

2.1 实验连接​

舵机的电源、地和控制信号按图连接,PWM 控制线接 PA0。

舵机的电源、地和控制信号按图连接,PWM 控制线接 PA0。
舵机的电源、地和控制信号按图连接,PWM 控制线接 PA0。

2.2 实验原理​

舵机内部包含电机、减速机构和位置反馈。外部 PWM 是位置指令,内部控制电路再据此驱动电机。

舵机读取的是脉宽;它与直接驱动电机的 PWM 用途不同。
舵机读取的是脉宽;它与直接驱动电机的 PWM 用途不同。

本课用 50 Hz,也就是 20 ms 的周期说明脉宽控制。图中的 1 ms、1.5 ms、2 ms 对应示例角度;实际舵机的角度范围要结合其型号。

设定时器输入为 72 MHz,分频 720 后得到 100 kHz 计数时钟,每格为 10 μs。一个 20 ms 周期包含 2000 格,因此对应 PSC = 719、ARR = 1999。

脉宽对应计数
1 msCCR = 100
1.5 msCCR = 150
2 msCCR = 200
先确定周期,再换算脉宽对应的 CCR。
先确定周期,再换算脉宽对应的 CCR。

预装载与影子寄存器让参数在规定的更新时刻生效,避免在周期中途随意改变时序。

写入新值与新值实际参与比较,可以发生在不同时间。
写入新值与新值实际参与比较,可以发生在不同时间。

2.3 CubeMX配置​

CubeMX配置

2.4 实验代码​

全局​

main()​

while(1)里面​

HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_1);

__HAL_TIM_SetCompare(&htim2,TIM_CHANNEL_1,counter*10+100);